#ifndef SYSINFO_H
#define SYSINFO_H

#include <QObject>
#include <QTimer>

class Temperature;
typedef struct PACKED_CPU           //定义一个cpu occupy的结构体
{
    char name[20];              //定义一个char类型的数组名name有20个元素
    unsigned int user;          //定义一个无符号的int类型的user
    unsigned int nice;          //定义一个无符号的int类型的nice
    unsigned int system;        //定义一个无符号的int类型的system
    unsigned int idle;          //定义一个无符号的int类型的idle
}CPU_OCCUPY;

typedef struct PACKED_MEM           //定义一个mem occupy的结构体
{
    float total;
    float free;
}MEM_OCCUPY;

class SysInfo : public QObject
{
    Q_OBJECT
public:
    SysInfo();
    int cpuRate;        // cpu占用率：0~1000 ： 0~100%
    int memRate;        // 内存占用率：0~1000 ： 0~100%
    int cpuTemp;        // cpu温度：0~1000 : 0~100℃
    int vdoTemp;        // 显卡温度：0~1280 : 0~128℃
    int hddTemp;        // 硬盘温度：0~1000 : 0~100℃
    ~SysInfo();

protected:
    void timerEvent(QTimerEvent *);

private:
    int timeID;
    Temperature *temperature;
    float cpu_rate;
    float mem_rate;
    float cpu_temp;
    float vdo_temp;
    float hdd_temp;
    CPU_OCCUPY  last_cpu_stat;
};

#endif // SYSINFO_H
